/********************************************************************************
 *    Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH    *
 *                                                                              *
 *              This software is distributed under the terms of the             * 
 *              GNU Lesser General Public Licence (LGPL) version 3,             *  
 *                  copied verbatim in the file "LICENSE"                       *
 ********************************************************************************/
#include "EtfNeutronWallPoint.h"

#include <iostream>
using std::cout;
using std::endl;


// -----   Default constructor   -------------------------------------------
EtfNeutronWallPoint::EtfNeutronWallPoint()
  : FairMCPoint()
{
}
// -------------------------------------------------------------------------

// -----   Standard constructor   ------------------------------------------
EtfNeutronWallPoint::EtfNeutronWallPoint(Int_t trackID, Int_t detID,Int_t id1, Int_t id2,
                            TVector3 posIn,TVector3 posOut, TVector3 momIn,
                            TVector3 momOut,Double_t time, Double_t length,
                             Double_t eLoss)
  : FairMCPoint(trackID, detID, posIn, momIn, time, length, eLoss),
    fX_out(posOut.X()), fY_out(posOut.Y()), fZ_out(posOut.Z()),
    fPx_out(momOut.X()), fPy_out(momOut.Y()), fPz_out(momOut.Z()),
    fSector(id1), fPaddleNb(id2)
{
}
// -------------------------------------------------------------------------
 EtfNeutronWallPoint::EtfNeutronWallPoint(const EtfNeutronWallPoint& right)
 : FairMCPoint(right),
     fX_out(right.fX_out), fY_out(right.fY_out), fZ_out(right.fZ_out),
    fPx_out(right.fPx_out), fPy_out(right.fPy_out), fPz_out(right.fPz_out),
    fSector(right.fSector), fPaddleNb(right.fPaddleNb)
    
{
}
// -----   Destructor   ----------------------------------------------------
EtfNeutronWallPoint::~EtfNeutronWallPoint() { }
// -------------------------------------------------------------------------

// -----   Public method Print   -------------------------------------------
void EtfNeutronWallPoint::Print(const Option_t* /*opt*/) const
{
  cout << "-I- EtfNeutronWallPoint: EtfNeutronWall point for track " << fTrackID
       << " in detector " << fDetectorID << endl;
  cout << "    Position (" << fX << ", " << fY << ", " << fZ
       << ") cm" << endl;
  cout << "    Momentum (" << fPx << ", " << fPy << ", " << fPz
       << ") GeV" << endl;
  cout << "    Time " << fTime << " ns,  Length " << fLength
       << " cm,  Energy loss " << fELoss*1.0e06 << " keV" << endl;
}
// -------------------------------------------------------------------------

ClassImp(EtfNeutronWallPoint)

